Skip to content

Add missing operators and sources fwd#529

Merged
AlexInLog merged 2 commits into
AlexInLog:v2from
CorentinBT:missing_fwds
Feb 18, 2024
Merged

Add missing operators and sources fwd#529
AlexInLog merged 2 commits into
AlexInLog:v2from
CorentinBT:missing_fwds

Conversation

@CorentinBT

Copy link
Copy Markdown
Contributor

No description provided.

AlexInLog
AlexInLog previously approved these changes Feb 18, 2024
@github-actions

Copy link
Copy Markdown
Contributor

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-gcc

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 321.30 ns 2.17 ns 2.16 ns 1.00
Subscribe empty callbacks to empty observable via pipe operator 327.55 ns 2.16 ns 2.16 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 723.14 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 1064.90 ns 5.25 ns 5.25 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 2384.15 ns 124.47 ns 184.60 ns 0.67
defer from array of 1 - defer + create + subscribe + immediate 781.09 ns 0.31 ns 0.63 ns 0.49
interval - interval + take(3) + subscribe + immediate 2179.07 ns 57.99 ns 61.93 ns 0.94
interval - interval + take(3) + subscribe + current_thread 3068.07 ns 32.14 ns 41.53 ns 0.77

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1146.17 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 886.53 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1040.72 ns 0.31 ns 0.34 ns 0.90
immediate_just(1,1,2)+distinct_until_changed()+subscribe 871.55 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1299.10 ns 0.62 ns 0.62 ns 1.00
immediate_just(1,2)+last()+subscribe 1002.38 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1204.07 ns 18.22 ns 17.59 ns 1.04

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 300.63 ns 2.16 ns 2.92 ns 0.74
current_thread scheduler create worker + schedule 393.09 ns 7.41 ns 8.15 ns 0.91
current_thread scheduler create worker + schedule + recursive schedule 861.60 ns 64.75 ns 68.25 ns 0.95

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 885.14 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 923.29 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2502.12 ns 174.48 ns 153.71 ns 1.14
immediate_just+buffer(2)+subscribe 1587.90 ns 14.52 ns 13.89 ns 1.05
immediate_just+window(2)+subscribe + subscsribe inner 2493.70 ns 1102.71 ns 1066.27 ns 1.03

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 860.98 ns - - 0.00
immediate_just+take_while(true)+subscribe 881.94 ns 0.31 ns 0.31 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 2175.50 ns 0.31 ns 0.37 ns 0.83

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3643.16 ns 175.39 ns 177.62 ns 0.99
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3702.83 ns 171.81 ns 189.10 ns 0.91
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 139.51 ns 136.30 ns 1.02
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3668.94 ns 1154.76 ns 1197.14 ns 0.96
immediate_just(1) + zip(immediate_just(2)) + subscribe 2216.52 ns 225.49 ns 213.22 ns 1.06

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 34.62 ns 12.02 ns 11.71 ns 1.03

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1354.45 ns 16.48 ns 16.37 ns 1.01
basic sample with immediate scheduler 1504.40 ns 5.55 ns 5.56 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 1013.54 ns 0.31 ns 0.31 ns 1.00

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 1132.81 ns 143.08 ns 136.36 ns 1.05

ci-macos

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 979.37 ns 3.87 ns 3.91 ns 0.99
Subscribe empty callbacks to empty observable via pipe operator 978.02 ns 3.84 ns 3.93 ns 0.98

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1971.95 ns 0.23 ns 0.23 ns 1.01
from array of 1 - create + subscribe + current_thread 2440.29 ns 25.41 ns 25.26 ns 1.01
concat_as_source of just(1 immediate) create + subscribe 5526.74 ns 327.20 ns 305.69 ns 1.07
defer from array of 1 - defer + create + subscribe + immediate 2000.76 ns 0.23 ns 0.24 ns 0.97
interval - interval + take(3) + subscribe + immediate 4981.42 ns 114.49 ns 125.56 ns 0.91
interval - interval + take(3) + subscribe + current_thread 6058.59 ns 107.39 ns 121.03 ns 0.89

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 2953.96 ns 0.24 ns 0.27 ns 0.88
immediate_just+filter(true)+subscribe 2118.72 ns 0.23 ns 0.71 ns 0.33
immediate_just(1,2)+skip(1)+subscribe 2775.46 ns 0.23 ns 0.23 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 2087.89 ns 0.47 ns 0.53 ns 0.88
immediate_just(1,2)+first()+subscribe 3260.96 ns 0.24 ns 1.09 ns 0.22
immediate_just(1,2)+last()+subscribe 2417.59 ns 0.26 ns 0.24 ns 1.09
immediate_just+take_last(1)+subscribe 3027.71 ns 73.80 ns 265.78 ns 0.28

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 849.57 ns 4.05 ns 4.61 ns 0.88
current_thread scheduler create worker + schedule 1202.96 ns 39.92 ns 38.61 ns 1.03
current_thread scheduler create worker + schedule + recursive schedule 1984.11 ns 222.71 ns 219.84 ns 1.01

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 2287.34 ns 0.23 ns 0.26 ns 0.91
immediate_just+scan(10, std::plus)+subscribe 2362.04 ns 0.48 ns 0.54 ns 0.89
immediate_just+flat_map(immediate_just(v*2))+subscribe 5430.59 ns 414.70 ns 477.15 ns 0.87
immediate_just+buffer(2)+subscribe 2553.99 ns 73.07 ns 80.57 ns 0.91
immediate_just+window(2)+subscribe + subscsribe inner 5470.46 ns 2356.57 ns 2596.27 ns 0.91

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 2121.56 ns - - 0.00
immediate_just+take_while(true)+subscribe 2129.25 ns 0.23 ns 0.26 ns 0.89

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 4954.65 ns 0.23 ns 0.25 ns 0.92

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 7630.66 ns 454.40 ns 455.75 ns 1.00
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 8640.47 ns 448.46 ns 450.21 ns 1.00
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 477.73 ns 479.70 ns 1.00
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 8005.98 ns 1943.38 ns 1913.16 ns 1.02
immediate_just(1) + zip(immediate_just(2)) + subscribe 5187.83 ns 812.70 ns 959.65 ns 0.85

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 75.60 ns 49.28 ns 49.33 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 2814.86 ns 105.85 ns 102.04 ns 1.04
basic sample with immediate scheduler 2763.01 ns 15.47 ns 14.19 ns 1.09

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 2427.03 ns 0.24 ns 0.23 ns 1.03

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 6467.14 ns 4059.56 ns 4138.35 ns 0.98

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 274.75 ns 0.89 ns 0.88 ns 1.01
Subscribe empty callbacks to empty observable via pipe operator 274.18 ns 0.88 ns 0.88 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 581.67 ns 0.31 ns 0.32 ns 0.95
from array of 1 - create + subscribe + current_thread 809.49 ns 5.55 ns 5.55 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 1955.79 ns 113.28 ns 113.07 ns 1.00
defer from array of 1 - defer + create + subscribe + immediate 590.47 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 1528.14 ns 57.07 ns 57.10 ns 1.00
interval - interval + take(3) + subscribe + current_thread 2162.74 ns 30.86 ns 30.88 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 918.90 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 669.16 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 863.02 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 690.27 ns 0.62 ns 0.62 ns 1.00
immediate_just(1,2)+first()+subscribe 1142.02 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 739.79 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 972.09 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 195.57 ns 0.88 ns 0.88 ns 1.00
current_thread scheduler create worker + schedule 304.80 ns 5.58 ns 5.89 ns 0.95
current_thread scheduler create worker + schedule + recursive schedule 626.95 ns 60.81 ns 59.23 ns 1.03

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 665.88 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 720.70 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 1809.84 ns 124.10 ns 120.88 ns 1.03
immediate_just+buffer(2)+subscribe 1348.47 ns 14.50 ns 13.58 ns 1.07
immediate_just+window(2)+subscribe + subscsribe inner 2193.60 ns 810.32 ns 804.39 ns 1.01

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 663.50 ns - - 0.00
immediate_just+take_while(true)+subscribe 658.38 ns 0.31 ns 0.31 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1640.79 ns 0.31 ns 0.31 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 2514.28 ns 128.53 ns 127.39 ns 1.01
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 2992.63 ns 120.88 ns 123.25 ns 0.98
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 112.13 ns 112.49 ns 1.00
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 2655.62 ns 725.84 ns 726.35 ns 1.00
immediate_just(1) + zip(immediate_just(2)) + subscribe 1881.09 ns 177.93 ns 174.05 ns 1.02

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 26.35 ns 14.80 ns 14.18 ns 1.04

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1048.83 ns 13.58 ns 13.58 ns 1.00
basic sample with immediate scheduler 1052.58 ns 5.86 ns 5.87 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 742.31 ns 0.31 ns 0.31 ns 1.00

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 868.17 ns 127.59 ns 126.80 ns 1.01

ci-windows

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 587.29 ns 4.70 ns 4.93 ns 0.95
Subscribe empty callbacks to empty observable via pipe operator 604.77 ns 4.77 ns 4.93 ns 0.97

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1183.71 ns 5.24 ns 5.24 ns 1.00
from array of 1 - create + subscribe + current_thread 1459.69 ns 19.13 ns 19.19 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 4741.01 ns 170.00 ns 168.19 ns 1.01
defer from array of 1 - defer + create + subscribe + immediate 1213.89 ns 4.94 ns 4.93 ns 1.00
interval - interval + take(3) + subscribe + immediate 3002.10 ns 129.88 ns 129.22 ns 1.01
interval - interval + take(3) + subscribe + current_thread 3515.17 ns 59.52 ns 59.52 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1865.80 ns 12.85 ns 12.85 ns 1.00
immediate_just+filter(true)+subscribe 1718.47 ns 11.68 ns 11.71 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1773.26 ns 13.87 ns 13.11 ns 1.06
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1378.82 ns 15.77 ns 15.78 ns 1.00
immediate_just(1,2)+first()+subscribe 2102.34 ns 12.65 ns 12.64 ns 1.00
immediate_just(1,2)+last()+subscribe 1493.12 ns 14.07 ns 14.04 ns 1.00
immediate_just+take_last(1)+subscribe 2062.72 ns 62.44 ns 62.77 ns 0.99

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 496.81 ns 7.13 ns 7.08 ns 1.01
current_thread scheduler create worker + schedule 675.74 ns 17.60 ns 17.59 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 1121.78 ns 111.40 ns 110.54 ns 1.01

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 1339.98 ns 11.23 ns 11.23 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 1450.06 ns 21.58 ns 21.58 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 3921.72 ns 228.71 ns 232.66 ns 0.98
immediate_just+buffer(2)+subscribe 2348.72 ns 58.36 ns 57.80 ns 1.01
immediate_just+window(2)+subscribe + subscsribe inner 4119.03 ns 1560.38 ns 1572.28 ns 0.99

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1339.83 ns 11.45 ns 11.45 ns 1.00
immediate_just+take_while(true)+subscribe 1345.92 ns 11.68 ns 11.69 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 4192.92 ns 7.10 ns 7.09 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 5154.12 ns 231.00 ns 229.80 ns 1.01
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 6558.38 ns 228.93 ns 227.79 ns 1.00
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 233.75 ns 235.98 ns 0.99
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 8330.17 ns 985.27 ns 965.19 ns 1.02
immediate_just(1) + zip(immediate_just(2)) + subscribe 3931.37 ns 547.63 ns 542.70 ns 1.01

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 36.31 ns 25.91 ns 25.90 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1883.68 ns 59.75 ns 59.85 ns 1.00
basic sample with immediate scheduler 1903.99 ns 35.17 ns 35.17 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 1480.44 ns 19.98 ns 20.93 ns 0.95

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 1953.68 ns 350.20 ns 345.50 ns 1.01

@codecov

codecov Bot commented Feb 18, 2024

Copy link
Copy Markdown

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (721b469) 95.53% compared to head (9f83135) 95.03%.
Report is 11 commits behind head on v2.

Additional details and impacted files
@@            Coverage Diff             @@
##               v2     #529      +/-   ##
==========================================
- Coverage   95.53%   95.03%   -0.51%     
==========================================
  Files          80       85       +5     
  Lines        2105     1530     -575     
==========================================
- Hits         2011     1454     -557     
+ Misses         94       76      -18     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@sonarqubecloud

Copy link
Copy Markdown

@AlexInLog AlexInLog merged commit 081b13a into AlexInLog:v2 Feb 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants